﻿using System;
using Resn.WhuPub.DML;

namespace Resn.WhuPub.BIL
{
        /// <summary>
        ///定义经销商的属性和方法
        /// </summary>
        public interface IDealer : IEntity
        {
                #region 属性

                #region 基本属性

                /// <summary>
                ///获取或设置名称
                /// </summary>
                /// <value>
                ///名称
                /// </value>
                string Name { get; set; }

                /// <summary>
                ///获取或设置省份
                /// </summary>
                /// <value>
                ///省份
                /// </value>
                string Province { get; set; }

                /// <summary>
                ///获取或设置城市
                /// </summary>
                /// <value>
                ///城市
                /// </value>
                string City { get; set; }

                /// <summary>
                ///获取或设置邮编
                /// </summary>
                /// <value>
                ///邮编
                /// </value>
                string Postcode { get; set; }

                /// <summary>
                ///获取或设置注册地址
                /// </summary>
                /// <value>
                ///注册地址
                /// </value>
                string RegisterAddress { get; set; }

                /// <summary>
                ///获取或设置经营地址
                /// </summary>
                /// <value>
                ///经营地址
                /// </value>
                string BusinessAddress { get; set; }

                /// <summary>
                ///获取或设置主营业务
                /// </summary>
                /// <value>
                ///主营业务
                /// </value>
                string MainBusiness { get; set; }

                /// <summary>
                ///获取或设置联系人姓名
                /// </summary>
                /// <value>
                ///联系人姓名
                /// </value>
                string ContactName { get; set; }

                /// <summary>
                ///获取或设置联系人电话
                /// </summary>
                /// <value>
                ///联系人电话
                /// </value>
                string ContactTelephone { get; set; }

                /// <summary>
                ///获取或设置联系人传真
                /// </summary>
                /// <value>
                ///联系人传真
                /// </value>
                string ContactFax { get; set; }

                /// <summary>
                ///获取或设置联系人电子邮箱
                /// </summary>
                /// <value>
                ///联系人电子邮箱
                /// </value>
                string ContactEmail { get; set; }

                /// <summary>
                ///获取或设置法人姓名
                /// </summary>
                /// <value>
                ///法人姓名
                /// </value>
                string LegalName { get; set; }

                /// <summary>
                ///获取或设置法人电话
                /// </summary>
                /// <value>
                ///法人电话
                /// </value>
                string LegalTelephone { get; set; }

                /// <summary>
                ///获取或设置经理姓名
                /// </summary>
                /// <value>
                ///经理姓名
                /// </value>
                string ManagerName { get; set; }

                /// <summary>
                ///获取或设置经理联系电话
                /// </summary>
                /// <value>
                ///经理联系电话
                /// </value>
                string ManagerTelephone { get; set; }

                /// <summary>
                ///获取或设置财务姓名
                /// </summary>
                /// <value>
                ///财务姓名
                /// </value>
                string FinanceName { get; set; }

                /// <summary>
                ///获取或设置经理姓名财务联系电话
                /// </summary>
                /// <value>
                ///财务联系电话
                /// </value>
                string FinanceTelephone { get; set; }

                /// <summary>
                ///获取或设置收货人姓名
                /// </summary>
                /// <value>
                ///收货人姓名
                /// </value>
                string ConsigneeName { get; set; }

                /// <summary>
                ///获取或设置收货人联系电话
                /// </summary>
                /// <value>
                ///收货人联系电话
                /// </value>
                string ConsigneeTelephone { get; set; }

                /// <summary>
                ///获取或设置收货地址
                /// </summary>
                /// <value>
                ///收货地址
                /// </value>
                string ConsigneeAddress { get; set; }

                /// <summary>
                ///获取或设置税票户名
                /// </summary>
                /// <value>
                ///税票户名
                /// </value>
                string TaxName { get; set; }

                /// <summary>
                ///获取或设置税票账号
                /// </summary>
                /// <value>
                ///税票账号
                /// </value>
                string TaxAccount { get; set; }

                /// <summary>
                ///获取或设置税票联系电话
                /// </summary>
                /// <value>
                ///经理姓名
                /// </value>
                string TaxTelephone { get; set; }

                /// <summary>
                ///获取或设置税票地址
                /// </summary>
                /// <value>
                ///税票地址
                /// </value>
                string TaxAddress { get; set; }

                /// <summary>
                ///获取或设置开户行
                /// </summary>
                /// <value>
                ///开户行
                /// </value>
                string BankName { get; set; }

                /// <summary>
                ///获取或设置开户行账号
                /// </summary>
                /// <value>
                ///开户行账号
                /// </value>
                string BankAccount { get; set; }

                #endregion 基本属性

                /// <summary>
                ///获取经销商模型
                /// </summary>
                /// <value>
                ///经销商模型
                /// </value>
                DealerModel Model { get; }

                #endregion 属性

                #region 方法

                /// <summary>
                /// 创建发票寄送流程
                /// </summary>
                /// <param name="billingEmployeeId">开票员工标识</param>
                /// <param name="billingNumber">开票号</param>
                /// <param name="billingTime">开票时间</param>
                /// <param name="billingAmount">开票金额</param>
                /// <param name="deliveryNumber">寄送单号</param>
                /// <param name="deliveryTime">寄送时间</param>
                /// <returns>
                /// 创建的发票寄送流程对象
                /// </returns>
                IInvoiceDelivery CreateInvoiceDelivery(string billingEmployeeId, string billingNumber, string billingTime, double billingAmount, 
                       string deliveryNumber, DateTime deliveryTime);

                

                #endregion

        }
}